package com.curricula.contacto.service;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.apache.log4j.Logger;

import com.curricula.contacto.vo.ContactoVO;

/**
 * Servicios utilizados para la logica del envio de correos.
 * 
 * @author Carlos
 * @version 1.0 
 */
public class ContactoService {
	static Logger log = Logger.getLogger(ContactoService.class);
	
	/**
	 * Establece las propiedades del mensaje que sera enviado y se lo envia al
	 * parametro que recibe como entrada en este caso ContactoVO.
	 * 
	 * @author Carlos
	 * @param ContactoVO contactoVO
	 * @return boolean
	 */
	public static boolean enviarMail(ContactoVO contactoVO){
		boolean enviado = false;
        try
        {
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", "info.ptcurriculum@gmail.com");
            props.setProperty("mail.smtp.auth", "true");

            Session session = Session.getDefaultInstance(props);

            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress("info.ptcurriculum@gmail.com"));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(contactoVO.getConCorreo()));
            //message.addRecipient(Message.RecipientType.TO, new InternetAddress("hugoprm@gmail.com"));
            message.setSubject(contactoVO.getConAsunto());
            message.setText(contactoVO.getConDescripcion());

            Transport t = session.getTransport("smtp");
            t.connect("info.ptcurriculum@gmail.com", "curricul");
            t.sendMessage(message, message.getAllRecipients());

            t.close();
            enviado=true;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return enviado;
	}
}
